#include "udp_server_fun.h"
#include "common_util.h"

WiFiUDP udp;  //声明UDP对象

void UDPServerInit() {
  Serial.print("init udp server,prot:");
  Serial.println(UDPProt);
  xTaskCreate(taskServerUDP, "taskServerUDP", 1024 * 10, NULL, 1, NULL);
}

void taskServerUDP(void* ptParam) {
  udp.begin(UDPProt);
  while (1) {
    /*接收发送过来的Udp数据*/
    int Data_length = udp.parsePacket();  //获取接收的数据的长度
    if (Data_length && udp.available())   //如果有数据那么Data_length不为0，无数据Data_length为0
    {
      String request = udp.readStringUntil('\n');
      if (!requestTest(request)) {
        continue;
      }
      requestString(request);
      if (transmit) {
        broadcast(request);
      }
      /*将接受到的数据发送回去*/
      // Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());  //准备发送数据到目标IP和目标端口
      // Udp.print("receive data:");                         //将数据receive data:放入发送的缓冲区
      // Udp.println(incomingPacket);                        //将接收到的数据放入发送的缓冲区
      // Udp.endPacket();                                    //向目标IP目标端口发送数据
    }
  }
}
